package com.fowo.api.model.tmp.wfs.cargo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** WFS货件临时表 导入导出辅助模型 */
@Getter
@Setter
public class TmpWfsCargoExcelPo {

  @Size(max = 50, message = "入库订单编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "入库订单编号")
  private String inboundOrderId;

  @Size(max = 50, message = "货件单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "货件单号")
  private String shipmentId;

  @Size(max = 50, message = "货件状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "货件状态")
  private String status;

  @Size(max = 50, message = "创建时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "创建时间")
  private java.util.Date createdDate;

  @ExcelProperty(value = "申报数量")
  private Integer shipmentUnits;

  @ExcelProperty(value = "签收数量")
  private Integer receivedUnits;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "预计交货日期")
  private java.util.Date expectedDeliveryDate;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "更新预期交付日期")
  private java.util.Date updatedExpectedDeliveryDate;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "交货日期")
  private java.util.Date actualDeliveryDate;

  @Size(max = 5000, message = "货物的跟踪信息长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "货物的跟踪信息")
  private String trackingNo;

  @Size(max = 50, message = "货物承运人长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "货物承运人")
  private String carrierName;

  @Size(max = 50, message = "配送地址收件人长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送地址收件人")
  private String toFcName;

  @Size(max = 500, message = "配送地址详细地址1长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送地址详细地址1")
  private String toAddressLine1;

  @Size(max = 500, message = "配送地址详细地址2长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送地址详细地址2")
  private String toAddressLine2;

  @Size(max = 50, message = "配送地址城市长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送地址城市")
  private String toCity;

  @Size(max = 50, message = "配送地址州长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送地址州")
  private String toStateCode;

  @Size(max = 50, message = "配送地址国家长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送地址国家")
  private String toCountryCode;

  @Size(max = 50, message = "配送地址邮编长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "配送地址邮编")
  private String toPostalCode;

  @Size(max = 500, message = "退货地址详细地址1长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "退货地址详细地址1")
  private String returnAddressLine1;

  @Size(max = 500, message = "退货地址详细地址2长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "退货地址详细地址2")
  private String returnAddressLine2;

  @Size(max = 50, message = "退货地址城市长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "退货地址城市")
  private String returnCity;

  @Size(max = 50, message = "退货地址州长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "退货地址州")
  private String returnStateCode;

  @Size(max = 50, message = "退货地址国家长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "退货地址国家")
  private String returnCountryCode;

  @Size(max = 50, message = "退货地址邮编长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "退货地址邮编")
  private String returnPostalCode;

  @ExcelProperty(value = "店铺")
  private Long sid;

  @ExcelProperty(value = "国家")
  private Long countryName;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否更新数据")
  private String isUpdate;
}
